package com.vo;

import java.io.Serializable;
/**
 * Classe User utilizada como Variable Object
 * @author Jean Vasconcelos, Carla Sukeyosi, Matheus Emanuel, Heitor Carvalho
 */
public class User implements Serializable
{
    private String name;
    private String email;
    private String description;
    private String imagePath;
    
    /**
     * Recupera a descricao do usuario
     * @return a descricao do usuario
     */
    public String getDescription() 
    {
        return description;
    }
    
    /**
    * Recupera o caminho para a imagem do usuario
    * @return caminho para imagem do usuario
    */
    public String getImagePath() 
    {
        return imagePath;
    }
    
    /**
     * Altera o caminho para a imagem do usuario
     * @param imagePath novo caminho para a imagem
     */
    public void setImagePath(String imagePath) 
    {
        this.imagePath = imagePath;
    }
    
    /**
     * Altera a descricao do usuario
     * @param description a nova descricao do usuario
     */
    public void setDescription(String description) 
    {
        this.description = description;
    }
    
    /**
     * Recupera o email do usuario
     * @return o email do usuario
     */
    public String getEmail() 
    {
        return email;
    }
    
    /**
     * Altera o email do usuario
     * @param email novo email do usuario
     */
    public void setEmail(String email) 
    {
        this.email = email;
    }
    
    /**
     * Recupera o nome do usuario
     * @return o nome do usuario
     */
    public String getName() 
    {
        return name;
    }
    
    /**
     * Altera o nome do usuario
     * @param name novo nome do usuario
     */
    public void setName(String name) 
    {
        this.name = name;
    }
    
    
    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final User other = (User) obj;
        if ((this.name == null) ? (other.name != null) : !this.name.toLowerCase().equals(other.name.toLowerCase())) {
            return false;
        }
        if ((this.email == null) ? (other.email != null) : !this.email.toLowerCase().equals(other.email.toLowerCase())) {
            return false;
        }
        if ((this.description == null) ? (other.description != null) : !this.description.toLowerCase().equals(other.description.toLowerCase())) {
            return false;
        }
                
        return true;
    }
    
    
    /**
     * Representacao de um usuario numa string
     * @return Nome do usuario e seu email
     */
    @Override
    public String toString()
    {
        return "Usuário: " + name + "\nEmail: " + email + "\nDescrição: " + description
                + "\nCaminho da imagem no sistema: " + imagePath;
    }
}
